'use static';

const fs = require('fs');
const { sequelize } = require('../db');


//遍历出所有的文件index.js除外
function getFiles(dir) {

    //读取当前路由  
    let files = fs.readdirSync(dir);

    //筛选出所有的js文件
    return files.filter((x) => {
        return x.endsWith('.js') && x !== "index.js";
    });
}


//注册模型对象
function RighterModel(files) {

    let obj = {};

    files.map((fileName) => {

        //截取文件的名称（不要.js）
        let key = fileName.substring(0, fileName.length - 3);

        //引入当前（文件）模块
        obj[key] = require(__dirname + "/" + fileName);
    })

    return obj;
}

let files = getFiles(__dirname);

let objMod = RighterModel(files);

//给对象绑定sync方法
objMod.sync = async () => {
    if (process.env === "process") {
        console.log("当前为生产环境,不可以强制建表");
    } else {
        return sequelize.sync({ force: true });
    }
}

module.exports = {
    objMod,
    sequelize
}